\documentclass[10pt,a4paper]{article}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{a4wide}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{Standardy}
\rhead{Strona \thepage}
\lfoot{}
\cfoot{}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\def\thesection{\arabic{section}.}
\def\thesubsection{\thesection\arabic{subsection}.}
\def\thesubsubsection{\thesubsection\arabic{subsubsection}.}

\title{{\LARGE\textbf{Projekt Kino}}\\ \large{Standardy}}
\author{Paweł Chwała, Jacek Fiedorowicz, Piotr Kieć}

\begin{document}
\maketitle
\vfill
\nopagebreak
\begin{flushleft}
	\begin{tabular}{||c|c|c|l||}\hline
	\multicolumn{4}{|c|}{\textbf{Spis wersji}}\\ \hline\hline
	\textbf{Data} & \textbf{Wersja} & \textbf{Autor} & \textbf{Opis wprowadzonych zmian dokumentu}\\ \hline
8.12.2009 & 1.0 & Paweł Chwała & utworzenie i edycja dokumentu \\ \hline
	\end{tabular}
\end{flushleft}

\thispagestyle{empty}
\newpage
\thispagestyle{empty}
\tableofcontents
\newpage

\section{Kodowanie znaków}
\noindent Wszystkie pliki źródłowe aplikacji kino zapisane są z użyciem kodowania \texttt{UNICODE} (\texttt{UTF-8}).

\section{Standardy kodowania dla języka PHP}
\noindent Niniejszy rozdział opisuje standard kodowania używany w plikach \texttt{.php}.
\subsection{Struktura dokumentu PHP}
\noindent W plikach źródłowych języka PHP używamy znacznika \texttt{<?php} zamiast \texttt{<?}.
\begin{verbatim}
    <?php
        ...
    ?>
\end{verbatim}
\subsection{Wcięcia}
\noindent Jako wcięcia używamy czterech spacji. Niedozwolone jest używanie znaku tabulacji.
\subsection{Instrukcje sterujące}
\noindent Do instrukcji sterujących zaliczamy instrukcje \texttt{if}, \texttt{for}, \texttt{while}, \texttt{switch}, itd. Po instrukcji sterującej, a przed nawiasem powinna znaleźć się jedna spacja. Dodatkowo dla zwiększenia czytelności kodu stosujemy notację używającą dwukropka (ang. \emph{colon syntax}). W notacji tej nie stosuje się klamer $\{$ i $\}$. Zamiast nich używany jest dwukropek i odpowiednie słowa kluczowe informujące o końcu bloku. Przykład dla instrukcji \texttt{if}:
\begin{verbatim}
    if (...):
        ...
    endif;
\end{verbatim}
oraz dla instrukcji \texttt{while}:
\begin{verbatim}
    while (...):
        ...
    endwhile;
\end{verbatim}

\subsection{Wywołania funkcji}
\noindent W wywołaniach funkcji nie dodajemy dodatkowej spacji po nazwie funkcji, a przed nawiasem otwierającym "$($":
\begin{verbatim}
    $a = min($b, $c);
\end{verbatim}

\subsection{Nawiasowanie}
\noindent Przy używaniu instrukcji sterujących nie używamy klamr $\{$ i $\}$. Klamry te mają zastosowanie przy definiowaniu klas i funkcji. Klamrę otwierającą $\{$ stawiamy w lini zawierającej słowo kluczowe \texttt{class} lub w przypadku funkcji słowo kluczowe \texttt{function}. \\

\noindent Przykład dla klasy:
\begin{verbatim}
    class Controller {
        ...
    }
\end{verbatim}
oraz dla funkcji:
\begin{verbatim}
    function max($a, $b) {
        return $a > $b ? $a : $b;
    }
\end{verbatim}
\subsection{Nazewnictwo}
\noindent Reguły dotyczące nazewnictwa:
\begin{itemize}
    \item Zmienne powinny posiadać adekwatne do swojego przeznaczenia nazwy, zaczynające się z małej litery.
    \item Klasy powinny posiadać intuicyjne nazwy, dobrze opisujące ich przeznaczenie. Nazwy klas powinny być pisane wielką literą.
    \item Funkcje oraz ich parametry powinny być nazywane według tych samych zasad co cmienne.
    \item Nazwy stałych pisane są w całości wielką literą.
\end{itemize}

\section{Standardy kodowania dla języka SQL}
\noindent Zapytania \texttt{SQL} piszemy wielkimi literami, odpowiednio je justując, tak aby zachować czytelność kodu i samych zapytań.
\end{document}
